package com.example.campuslink.commen.enums

enum class SchoolProvinceEnums(val chineseName:String) {
    ALL("全部"),
    BEIJING("北京市"),
    TIANJIN("天津市"),
    SHANGHAI("上海市"),
    CHONGQING("重庆市"),
    HEBEI("河北省"),
    SHANXI("山西省"),
    LIAONING("辽宁省"),
    JILIN("吉林省"),
    HEILONGJIANG("黑龙江省"),
    JIANGSU("江苏省"),
    ZHEJIANG("浙江省"),
    ANHUI("安徽省"),
    FUJIAN("福建省"),
    JIANGXI("江西省"),
    SHANDONG("山东省"),
    HENAN("河南省"),
    HUBEI("湖北省"),
    HUNAN("湖南省"),
    GUANGDONG("广东省"),
    HAINAN("海南省"),
    SICHUAN("四川省"),
    GUIZHOU("贵州省"),
    YUNNAN("云南省"),
    SHAANXI("陕西省"),
    GANSU("甘肃省"),
    QINGHAI("青海省"),
    TAIWAN("台湾省"),
    INNER_MONGOLIA("内蒙古自治区"),
    GUANGXI("广西壮族自治区"),
    XIZANG("西藏自治区"),
    NINGXIA("宁夏回族自治区"),
    XINJIANG("新疆维吾尔自治区"),
    HONG_KONG("香港特别行政区"),
    MACAO("澳门特别行政区");

    companion object {
        // 获取所有省份的中文名称列表
        fun chineseNames(): List<String> = values().map { it.chineseName }

        // 获取所有枚举名称列表（英文大写）
        fun enumNames(): List<String> = values().map { it.name }

        // 根据中文名称查找枚举
        fun fromChineseName(chineseName: String): SchoolProvinceEnums? {
            return values().find { it.chineseName == chineseName }
        }

        // 根据枚举名称查找枚举（不区分大小写）
        fun fromEnumName(name: String, ignoreCase: Boolean = true): SchoolProvinceEnums? {
            return values().find { it.name.equals(name, ignoreCase) }
        }

        // 获取键值对列表（用于Spinner适配器等）
        fun toNamePairList(): List<Pair<String, String>> {
            return values().map { it.name to it.chineseName }
        }

        //直接返回过滤后的列表
        fun chineseNamesWithoutAll() = chineseNames().filterNot { it == ALL.name }

        // 获取中文名称的ID列表（用于Spinner等）
        fun chineseNameList(): List<String> = values().map { it.chineseName }


    }

    // 重写toString返回中文名称
    override fun toString(): String = chineseName
}